package com.hwsc.pay.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;

@Slf4j
public class VerifySignUtils {
    public static void verifySign(String merchantNo, String signature) {
        // 获取当前时间，转换为分钟
        long currentTime = System.currentTimeMillis() / (3 * 60 * 1000);
        // 生成预期的签名
        String expectedSignature = DigestUtils.md5Hex(merchantNo + currentTime);
        // 验证签名
        if (signature.equals(expectedSignature)) {
            log.info("验证签名成功！");
        } else {
            log.info("正确签名={}", expectedSignature);
            log.info("验证签名失败！");
            throw new RuntimeException("签名不合法,测试正确签名="+ expectedSignature);
        }
    }

    public static void main(String[] args) {
        //// 引入 CryptoJS MD5 加密库
        //// 注意：此处假设你已经引入了 CryptoJS 相关的库文件
        //// 可以从 https://cryptojs.gitbook.io/docs/ 获取并引入
        //
        //// 生成签名函数
        //function genSign(merchantNo) {
        //    // 获取当前时间，转换为分钟
        //    var currentTime = Math.floor(Date.now() / (3* 60 * 1000)); // 时间戳转换为分钟
        //
        //    // 构造待加密的字符串
        //    var dataToSign = merchantNo + currentTime;
        //
        //    // 计算 MD5 值
        //    var md5Digest = CryptoJS.MD5(dataToSign).toString(CryptoJS.enc.Hex);
        //
        //    return md5Digest;
        //}
        //
        //var signature = generateSignature("95162017372P010");
        //console.log('Generated Signature:', signature);


//        System.out.println(verifySign("95162017372P010", "d0559c871d2107b9351047dcfeee1416"));
    }
}
